package com.my.storage.service;

import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

import org.springframework.core.io.FileSystemResource;
import org.springframework.web.multipart.MultipartFile;

import com.my.storage.dto.FileDownDTO;
import com.my.storage.model.FileMetadata;

/**
 * @author xhw
 */

public interface FileService {

    /**
     * 删除文件
     *
     * @param logicPath
     * @throws IOException
     */
    void deleteFile(String logicPath);

    /**
     * 获取文件详情（获取元数据）
     *
     * @param logicPath
     * @return
     */
    FileMetadata getFileDetails(String logicPath);

    /**
     * 获取文件系统资源
     *
     * @param logicPath
     * @return
     */
    FileSystemResource getFileSystemResource(String logicPath);

    /**
     * 列出目录
     *
     * @param logicPath
     * @return
     */
    List<FileMetadata> listChildren(String logicPath);

    /**
     * 保存文件
     *
     * @param file
     * @param logicPath
     * @return
     * @throws IOException
     */
    FileMetadata saveFile(MultipartFile file, String logicPath);
}
